perm filename SPL[AP,SYS] blob sn#101406 filedate 1974-05-13 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00003 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	Definitions.
 00003 00003	Main program.
 00006 ENDMK
⊗;
;Definitions.

	TITLE	SPL


EXTERN	SPALL,JOBREL

AC1←1
AC2←2
P←17

BLEN←20000
PDLEN←5

PDLIST:	BLOCK	PDLEN

SPLBK:	BLOCK	7		;this and the next 4 lines are the data for spooler
	SIXBIT	/APNEWS/
	BLOCK	6
	XWD	0,1401		;no FF's, suppress "spooling done", and delete file
	BLOCK	2		;last two words of 21 (octal) word block for spooler

DSK17:	17
	SIXBIT	/DSK/
	0

CMD:	IOWD	BLEN,1
	0

SPLF:	SIXBIT	/APNEWS/
	0
	XWD	467000,0	;dump never, rea/pro pro, rea/pro/wrt pro
	0

NEWSF:	SIXBIT	/[NEWS]/
	BLOCK	3

DEFINE	ERRMSG(MSG)
	{PUSHJ	P,[	MOVEI	AC2,[ASCIZ \MSG\]
			JRST	ERROR]}
;Main program.

SPL:	MOVE	P,[IOWD PDLEN,PDLIST]
	MOVE	AC1,JOBREL
	HRRM	AC1,CMD
	ADDI	AC1,BLEN
	CALL	AC1,[SIXBIT /CORE/]
	ERRMSG	{CORE UUO FAILED (1)}
	OPEN	1,DSK17
	ERRMSG	{OPEN FAILED ON DSK (2)}
	ENTER	1,SPLF
	ERRMSG	{ENTER FAILED ON SPOOL FILE (4)}

AGAIN:	OPEN	2,DSK17
	ERRMSG	{OPEN FAILED ON DSK (6)}
	SETZM	NEWSF+3
	LOOKUP	2,NEWSF
	JRST	[RELEAS	2,
		 MOVEI	AC1,1
		 CALL	AC1,[SIXBIT /SLEEP/]
		 JRST	AGAIN]
	HLRE	AC1,NEWSF+3

NXTBLK:	CAMLE	AC1,[-BLEN]
	HRLM	AC1,CMD
	IN	2,CMD
	JRST	.+2
	ERRMSG	{IN UUO FAILED ON NEWS (8)}
	OUT	1,CMD
	JRST	.+2
	ERRMSG	{OUT UUO FAILED ON SPOOL FILE (10)}
	ADDI	AC1,BLEN
	JUMPL	AC1,NXTBLK
	RELEAS	2,
	RELEAS	1,
	OUTSTR	[ASCIZ /FILE COPIED.../]
	CALLI	AC1,14			;DATE
	CALLI	AC2,22			;TIME
	CAMG	AC2,[7*=3600*=60]	;is it after 7AM?
	JRST	AM			;no.  spool file at 7AM
	CAMG	AC2,[=19*=3600*=60]	;is it after 7PM?
	JRST	PM			;no.  spool file at 7PM
	ADDI	AC1,1			;yes.  spool file at 7AM tomorrow
AM:	MOVEI	AC2,7*=60		;put 7AM in minutes into AC2
	JRST	.+2
PM:	MOVEI	AC2,=19*=60		;put 7PM in minutes into AC2
	HRL	AC2,AC1			;put date in left half of AC2
	MOVEM	AC2,SPLBK+6		;put XWD date,time in data block for spooler
	PUSHJ	P,SPALL			;spool it!
	JUMP	SPLBK
	OUTSTR	[ASCIZ /FILE SPOOLED/]
	CALLI	12			;EXIT

ERROR:	OUTSTR	(AC2)
	CALL	[SIXBIT /EXIT/]

	END	SPL